<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr" id="html">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>jQuery Test Suite</title>
    
    <script>
        function testLinkOnload(){
            var t = document.createTextNode(
              '#styleCreatedByLinkOnloadEvent { color: red; }');
            var s = document.createElement('style');
            s.setAttribute('id', 'sCreatedByLinkOnload');
            s.appendChild(t);
            document.getElementsByTagName('head')[0].appendChild(s);
        }
    </script>
    <script>
        function testXMLSpecialCharacters(){
            if(true && true && 0>-1){
                var f = 0&1;
				f&=1;    
			}
        }
    </script>
    <link rel="Stylesheet" media="screen" href="data/testsuite.css"
              onload="try{testLinkOnload();}catch(e){;}" />

	<script>var jQuery = "jQuery", $ = "$"; // For testing .noConflict()</script>
	<script type="text/javascript" src="../dist/jquery.js"></script>
	<script type="text/javascript" src="data/testrunner.js"></script>
	<script type="text/javascript" src="unit/core.js"></script>
	<script type="text/javascript" src="unit/dimensions.js"></script>
	<script type="text/javascript" src="unit/selector.js"></script>
	<script type="text/javascript" src="unit/event.js"></script>
	<script type="text/javascript" src="unit/ajax.js"></script>
	<script type="text/javascript" src="unit/fx.js"></script>
    
</head>

<body id="body">
	<h1 id="header">jQuery Test Suite</h1>
	<h2 id="banner"></h2>
	<h2 id="userAgent"></h2>
	
	<!-- Test HTML -->
	<div id="nothiddendiv" style="height:1px;background:white;">
		<div id="nothiddendivchild"></div>
	</div>

	<!-- this iframe is outside the #main so it won't reload constantly wasting time, but it means the tests must be "safe" and clean up after themselves -->
    <script>
        function iframeOnloadHandler(targetIframe){
			var t = document.createTextNode(
'Paragraph created by execution of iframe-onload event handler.');
			var p = document.createElement('p');
			p.setAttribute('id', 'pCreatedByIframeOnload');
			p.appendChild(t);
			targetIframe.appendChild(p);
        }
    </script>
    <iframe id="loadediframe" name="loadediframe" style="display:none;"
            src="html/iframe1.html" onload="iframeOnloadHandler(this)">
    </iframe>
    <iframe id="emptyiframe" name="emtpyiframe" style="display:none;"></iframe>

    <script>
        var usingEnvjsSpecificJar = false, rhino = false;
        try {
          usingEnvjsSpecificJar = whichJarFile == "envjs";
          rhino = true;
        } catch (e){;}
        if (usingEnvjsSpecificJar){
          eventFrameLoaded = eventFrameClicked = 0;
          function eventOnloadHandler(){  eventFrameLoaded  += 1;}
          function eventOnclickHandler(){ eventFrameClicked += 1;}

            document.write('                                                  \
            \x3ciframe id="eventsFrame" name="eventsFrame"                    \
                           src="html/events.html"                             \
                     onload="eventOnloadHandler();"                           \
                     onclick="eventOnclickHandler();"                         \
            \x3e\x3c/iframe\x3e                                               \
            \x3ciframe id="scopeFrame" name="scopeFrame"                      \
                     src="html/scope.html"                                    \
            \x3e\x3c/iframe\x3e                                               \
            ');
        }
    </script>

    <script>
        function imgOnloadEventHandler(){
            var t = document.createTextNode(
'Paragraph created by execution of img-onload event handler.');
            var p = document.createElement('p');
            p.setAttribute('id', 'pCreatedByImgOnload');
            p.appendChild(t);
            document.getElementsByTagName('body')[0].appendChild(p);
        }
    </script>
    <img id="anImg" src="html/img1.png"
         onload="try{imgOnloadEventHandler();}catch(e){;}" />

    <script>
        function onloadHandlerThatShouldntExecute(){
            var t = document.createTextNode(
'Paragraph created by execution of script *BAD* event handler.');
            var p = document.createElement('p');
            p.setAttribute('id', 'pShouldntBeCreated');
            p.appendChild(t);
            document.getElementsByTagName('body')[0].appendChild(p);
        }
    </script>
    <script onload="onloadHandlerThatShouldntExecute();">
        function scriptEventHandler(tag){
            var t = document.createTextNode(
'Paragraph created by execution of script event handler.');
            var p = document.createElement('p');
            p.setAttribute('id', 'pCreatedByScript'+tag);
            p.appendChild(t);
            document.getElementsByTagName('body')[0].appendChild(p);
        }
    </script>
    <script>
      // Generic case: allow scripts (not on rhino, which can't detect failures)
      if (!rhino) {
        js_enabled = Envjs.scriptTypes["text/javascript"];
        Envjs.scriptTypes["text/javascript"] = true;
      }
    </script>
    <script src="html/missingScript.js"
             onerror="try{scriptEventHandler('A');}catch(e){;}"
             onload="try{scriptEventHandler('B');}catch(e){;}"></script>
    <script>
      // Rhino case: these will succeed anyway
      if (rhino) {
        js_enabled = Envjs.scriptTypes["text/javascript"];
        Envjs.scriptTypes["text/javascript"] = true;
      }
    </script>
    <script src="html/script.js"
             onerror="try{scriptEventHandler('C');}catch(e){;}"
             onload="try{scriptEventHandler('D');}catch(e){;}"></script>
    <script>
      Envjs.scriptTypes["text/javascript"] = js_enabled;
    </script>

	<dl id="dl" style="display:none;">
	<div id="main" style="display: none;">
		<p id="firstp">See <a id="simon1" href="http://simon.incutio.com/archive/2003/03/25/#getElementsBySelector" rel="bookmark">this blog entry</a> for more information.</p>
		<p id="ap">
			Here are some links in a normal paragraph: <a id="google" href="http://www.google.com/" title="Google!">Google</a>, 
			<a id="groups" href="http://groups.google.com/">Google Groups</a>. 
			This link has <code><a href="http://smin" id="anchor1">class="blog"</a></code>: 
			<a href="http://diveintomark.org/" class="blog" hreflang="en" id="mark">diveintomark</a>

		</p>
		<div id="foo">
			<p id="sndp">Everything inside the red border is inside a div with <code>id="foo"</code>.</p>
			<p lang="en" id="en">This is a normal link: <a id="yahoo" href="http://www.yahoo.com/" class="blogTest">Yahoo</a></p>
			<p id="sap">This link has <code><a href="#2" id="anchor2">class="blog"</a></code>: <a href="http://simon.incutio.com/" class="blog link" id="simon">Simon Willison's Weblog</a></p>

		</div>
		<p id="first">Try them out:</p>
		<ul id="firstUL"></ul>
		<ol id="empty"></ol>
		<form id="form" action="formaction">
			<input type="text" name="action" value="Test" id="text1" maxlength="30"/>
			<input type="text" name="text2" value="Test" id="text2" disabled="disabled"/>
			<input type="radio" name="radio1" id="radio1" value="on"/>

			<input type="radio" name="radio2" id="radio2" checked="checked"/>
			<input type="checkbox" name="check" id="check1" checked="checked"/>
			<input type="checkbox" id="check2" value="on"/>

			<input type="hidden" name="hidden" id="hidden1"/>
			<input type="text" style="display:none;" name="foo[bar]" id="hidden2"/>
			
			<input type="text" id="name" name="name" value="name" />
			
			<button id="button" name="button">Button</button>
			
			<textarea id="area1" maxlength="30">foobar</textarea>
			
			<select name="select1" id="select1">
				<option id="option1a" class="emptyopt" value="">Nothing</option>
				<option id="option1b" value="1">1</option>
				<option id="option1c" value="2">2</option>
				<option id="option1d" value="3">3</option>
			</select>
			<select name="select2" id="select2">
				<option id="option2a" class="emptyopt" value="">Nothing</option>
				<option id="option2b" value="1">1</option>
				<option id="option2c" value="2">2</option>
				<option id="option2d" selected="selected" value="3">3</option>
			</select>
			<select name="select3" id="select3" multiple="multiple">
				<option id="option3a" class="emptyopt" value="">Nothing</option>
				<option id="option3b" selected="selected" value="1">1</option>
				<option id="option3c" selected="selected" value="2">2</option>
				<option id="option3d" value="3">3</option>
			</select>
			
            <select id="test_value">
                <option value="optionvalue" selected="selected">optiontext</option>
            </select>
        
            <select id="test_selecting">
                <option value="0">option0</option>
                <option value="1" selected="selected">option1</option>
                <option value="2">option2</option>
            </select>

			<object id="object1" codebase="stupid">
				<param name="p1" value="x1" />
				<param name="p2" value="x2" />
			</object>
			
			<span id="台北Táiběi"></span>
			<span id="台北" lang="中文"></span>
			<span id="utf8class1" class="台北Táiběi 台北"></span>
			<span id="utf8class2" class="台北"></span>
			<span id="foo:bar" class="foo:bar"></span>
			<span id="test.foo[5]bar" class="test.foo[5]bar"></span>
			
			<foo_bar id="foobar">test element</foo_bar>
		</form>
		<b id="floatTest">Float test.</b>
		<iframe id="iframe" name="iframe"></iframe>
		<form id="lengthtest">
			<input type="text" id="length" name="test"/>
			<input type="text" id="idTest" name="id"/>
		</form>
		<table id="table"></table>
		
		<div id="fx-queue">
			<div id="fadein" class='chain test'>fadeIn<div>fadeIn</div></div>
			<div id="fadeout" class='chain test out'>fadeOut<div>fadeOut</div></div>
			
			<div id="show" class='chain test'>show<div>show</div></div>
			<div id="hide" class='chain test out'>hide<div>hide</div></div>
			
			<div id="togglein" class='chain test'>togglein<div>togglein</div></div>
			<div id="toggleout" class='chain test out'>toggleout<div>toggleout</div></div>
		
			
			<div id="slideup" class='chain test'>slideUp<div>slideUp</div></div>
			<div id="slidedown" class='chain test out'>slideDown<div>slideDown</div></div>
			
			<div id="slidetogglein" class='chain test'>slideToggleIn<div>slideToggleIn</div></div>
			<div id="slidetoggleout" class='chain test out'>slideToggleOut<div>slideToggleOut</div></div>
		</div>
		
		<div id="fx-tests"></div>

		<form id="testForm" action="#" method="get">
			<textarea name="T3" rows="2" cols="15">?
Z</textarea>
			<input type="hidden" name="H1" value="x" />
			<input type="hidden" name="H2" />
			<input name="PWD" type="password" value="" />
			<input name="T1" type="text" />
			<input name="T2" type="text" value="YES" readonly="readonly" />
			<input type="checkbox" name="C1" value="1" />
			<input type="checkbox" name="C2" />
			<input type="radio" name="R1" value="1" />
			<input type="radio" name="R1" value="2" />
			<input type="text" name="My Name" value="me" />
			<input type="reset" name="reset" value="NO" />
			<select name="S1">
				<option value="abc">ABC</option>
				<option value="abc">ABC</option>
				<option value="abc">ABC</option>
			</select>
			<select name="S2" multiple="multiple" size="3">
				<option value="abc">ABC</option>
				<option value="abc">ABC</option>
				<option value="abc">ABC</option>
			</select>
			<select name="S3">
				<option selected="selected">YES</option>
			</select>
			<select name="S4">
				<option value="" selected="selected">NO</option>
			</select>
			<input type="submit" name="sub1" value="NO" />
			<input type="submit" name="sub2" value="NO" />
			<input type="image" name="sub3" value="NO" />
			<button name="sub4" type="submit" value="NO">NO</button>
			<input name="D1" type="text" value="NO" disabled="disabled" />
			<input type="checkbox" checked="checked" disabled="disabled" name="D2" value="NO" />
			<input type="radio" name="D3" value="NO" checked="checked" disabled="disabled" />
			<select name="D4" disabled="disabled">
				<option selected="selected" value="NO">NO</option>
			</select>
		</form>
		<div id="moretests">
			<form>
				<div id="checkedtest" style="display:none;">
					<input type="radio" name="checkedtestradios" checked="checked"/>
					<input type="radio" name="checkedtestradios" value="on"/>
					<input type="checkbox" name="checkedtestcheckboxes" checked="checked"/>
					<input type="checkbox" name="checkedtestcheckboxes" />
				</div>
			</form>
			<div id="nonnodes"><span>hi</span> there <!-- mon ami --></div>
			<div id="t2037">
				<div><div class="hidden">hidden</div></div>
			</div>
		</div>
	</div>
	</dl>
	
	<ol id="tests"></ol>

    <!-- test execution of main pages's body-onload tag functionality -->
    <script>
        var bodyElem = document.getElementsByTagName('body')[0];
        bodyElem.onload = function(){
            var t = document.createTextNode(
              'Look, a dynamically-generated paragraph!');
            var p = document.createElement('p');
            p.setAttribute('id', 'pCreatedByBodyOnload');
            p.appendChild(t);
            bodyElem.appendChild(p);
        }
    </script>
</body>
</html>
